import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

import 'BasicMessageChannelPage.dart';
import 'EventChannelPage.dart';
import 'MethodChannelPage.dart';
import 'NaviteViewPage.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(
        title: '',
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            buildButton("MethodChannel通信", const MethodChannelPage()),
            buildButton(
                "BasicMessageChannel通信", const BasicMessageChannelPage()),
            buildButton(" EventChannel通信", const EventChannelPage()),
            buildButton(" 内嵌原生View", const NaviteViewPage()),
          ],
        ),
      ),
    );
  }

  Widget buildButton(String title, Widget page) {
    return ElevatedButton(
        onPressed: () {
          pushPage(page);
        },
        child: Text(title));
  }

  void pushPage(Widget page) {
    Navigator.of(context).push(
      MaterialPageRoute(
        builder: (BuildContext context) {
          return page;
        },
      ),
    );
  }
}
